package com.wicket.okrbff.biz.service;

import com.wicket.okrbff.biz.service.dto.req.*;
import com.wicket.okrbff.biz.service.dto.res.*;
import com.wicket.okrframework.integration.FwBaseInductionRecordClient;
import com.wicket.okrframework.integration.dto.DeleteInductionRecordRespDto;
import com.wicket.okrframework.integration.dto.DeleteInductionRecordReqDto;
import com.wicket.okrframework.integration.dto.ArchiveInductionRecordRespDto;
import com.wicket.okrframework.integration.dto.ArchiveInductionRecordReqDto;
import com.wicket.okrframework.integration.dto.PostTransferInductionRecordRespDto;
import com.wicket.okrframework.integration.dto.PostTransferInductionRecordReqDto;
import com.wicket.okrframework.integration.dto.QueryUndoDirectInductionRecordListRespDto;
import com.wicket.okrframework.integration.dto.QueryUndoDirectInductionRecordListReqDto;
import cn.hutool.core.bean.BeanUtil;
import java.util.stream.Collectors;
import com.wicket.okrbff.common.exception.Assert;
import com.wicket.okrframework.integration.dto.AddInductionRecordRespDto;
import com.wicket.okrframework.integration.dto.AddInductionRecordReqDto;
import com.wicket.okrframework.integration.dto.UpdateInductionRecordRespDto;
import com.wicket.okrframework.integration.dto.UpdateInductionRecordReqDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordDetailRespDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordDetailReqDto;
import com.wicket.okrframework.integration.FwBasePositionClient;
import com.wicket.okrframework.integration.dto.QueryPositionDetailRespDto;
import com.wicket.okrframework.integration.dto.QueryPositionDetailReqDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordInfoDetailComRespDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordInfoDetailComReqDto;
import com.wicket.okrframework.integration.dto.QueryDirectInductionRecordListRespDto;
import com.wicket.okrframework.integration.dto.QueryDirectInductionRecordListReqDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordListBorderRespDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordListBorderReqDto;
import com.wicket.okrframework.integration.dto.PerfectSystemPositionRespDto;
import com.wicket.okrframework.integration.dto.PerfectSystemPositionReqDto;
import com.wicket.okrframework.integration.FwBasePowerClient;
import com.wicket.okrframework.integration.dto.QueryManageDeptListBorderRespDto;
import com.wicket.okrframework.integration.dto.QueryManageDeptListBorderReqDto;
import com.wicket.okrframework.integration.FwBaseDivineDataClient;
import com.wicket.okrframework.integration.dto.QueryDeptCollectionRemoveExistingDataListRespDto;
import com.wicket.okrframework.integration.dto.QueryDeptCollectionRemoveExistingDataListReqDto;
import com.wicket.okrframework.integration.dto.OrgInductionRecordDto;
import com.wicket.okrframework.integration.dto.ManagedDeptListDto;
import com.wicket.okrbff.common.util.CommonFunctionHelper;
import com.wicket.okrframework.integration.dto.QueryDeptInductionRecordListRespDto;
import com.wicket.okrframework.integration.dto.QueryDeptInductionRecordListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffStaffBeginMemberDto;
import com.wicket.okrframework.integration.dto.QueryUnstructuredInductionRecordListBorderRespDto;
import com.wicket.okrframework.integration.dto.QueryUnstructuredInductionRecordListBorderReqDto;
import com.wicket.okrframework.integration.FwBaseOrgClient;
import com.wicket.okrframework.integration.dto.QueryOrgDetailComRespDto;
import com.wicket.okrframework.integration.dto.QueryOrgDetailComReqDto;
import com.wicket.okrframework.integration.dto.JudgeMgtPowerRespDto;
import com.wicket.okrframework.integration.dto.JudgeMgtPowerReqDto;
import com.wicket.okrapp.integration.FwAppVirtualOrgClient;
import java.util.ArrayList;
import java.util.List;
import com.wicket.okrframework.integration.dto.QueryInductionRecordListComRespDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordListComReqDto;
import com.wicket.okrapp.integration.dto.QueryVirtualOrgMemberListComRespDto;
import com.wicket.okrapp.integration.dto.QueryVirtualOrgMemberListComReqDto;
import com.wicket.okrframework.integration.dto.AddCollectionRemoveExistingDataComRespDto;
import com.wicket.okrframework.integration.dto.AddCollectionRemoveExistingDataComReqDto;
import com.wicket.okrframework.integration.dto.BatchQueryDirectInductionRecordRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryDirectInductionRecordReqDto;
import com.wicket.okrbff.common.exception.BizException;
import com.wicket.okrapp.integration.dto.BatchQueryVirtualOrgMemberBorderRespDto;
import com.wicket.okrapp.integration.dto.BatchQueryVirtualOrgMemberBorderReqDto;
import com.wicket.okrframework.integration.dto.QueryDeptDirectlyInductionRecordListRespDto;
import com.wicket.okrframework.integration.dto.QueryDeptDirectlyInductionRecordListReqDto;
import cn.hutool.core.collection.CollectionUtil;
import com.wicket.okrframework.integration.dto.BatchQueryDeptListRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryDeptListReqDto;
import com.wicket.okrframework.integration.dto.BatchQueryOrgListBorderRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryOrgListBorderReqDto;
import com.wicket.okrframework.integration.dto.ImplementAnalyseInductionRecordLifecyCycleOperationTermRespDto;
import com.wicket.okrframework.integration.dto.ImplementAnalyseInductionRecordLifecyCycleOperationTermReqDto;
import com.wicket.okrframework.integration.dto.ImplementCurrentStaffMajorPositionElementAnalyseComRespDto;
import com.wicket.okrframework.integration.dto.ImplementCurrentStaffMajorPositionElementAnalyseComReqDto;
import com.wicket.okrframework.integration.dto.ImplementAnalyseIsXzDirectorComRespDto;
import com.wicket.okrframework.integration.dto.ImplementAnalyseIsXzDirectorComReqDto;
import com.wicket.okrframework.integration.dto.ImplementSetMajorPositionComRespDto;
import com.wicket.okrframework.integration.dto.ImplementSetMajorPositionComReqDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordListRespDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordListReqDto;
import com.wicket.okrframework.integration.dto.ObtainBasicUpReportLeaderRespDto;
import com.wicket.okrframework.integration.dto.ObtainBasicUpReportLeaderReqDto;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
public interface InductionRecordService {
    /**
   * B1-查询员工就职记录列表（边界）
   */
    BffQueryStaffInductionRecordListRespDto queryStaffInductionRecordList(BffQueryStaffInductionRecordListReqDto reqDto);

    /**
   * B1-3查询部门下就职记录列表（边界）
   */
    BffQueryDeptInductionRecordListRespDto queryDeptInductionRecordList(BffQueryDeptInductionRecordListReqDto reqDto);

    /**
   * B1-2查询过滤后可选管理部门（管理）
   */
    BffQueryFilterAdminDeptDetailBorderRespDto queryFilterAdminDeptDetailBorder(BffQueryFilterAdminDeptDetailBorderReqDto reqDto);

    /**
   * B1-3查询无组织架构就职记录列表（边界）
   */
    BffQueryUnstructuredInductionRecordListBorderRespDto queryUnstructuredInductionRecordListBorder(BffQueryUnstructuredInductionRecordListBorderReqDto reqDto);

    /**
   * B1-3查询直属就职记录列表（边界）
   */
    BffQueryDirectInductionRecordListBorderRespDto queryDirectInductionRecordListBorder(BffQueryDirectInductionRecordListBorderReqDto reqDto);

    /**
   * B1-3查询无组织架构就职记录列表
   */
    BffQueryUnstructuredInductionRecordListRespDto queryUnstructuredInductionRecordList(BffQueryUnstructuredInductionRecordListReqDto reqDto);

    /**
     * B1-3查询更新的就职记录列表（管理）
     */
    BffQueryUpdatedInductionListRespDto queryUpdatedInductionList(BffQueryUpdatedInductionListReqDto reqDto);

    /**
     * B1-3一键更新职务信息（管理-勿删）
     */
    BffBatchUpdateInductionRecordRespDto batchUpdateInductionRecord(BffBatchUpdateInductionRecordReqDto reqDto);

    /**
   * B1-3补充就职记录其它信息（管理）
   */
    BffPerfectPostGradesInfoRespDto perfectPostGradesInfo(BffPerfectPostGradesInfoReqDto reqDto);

    /**
   * B1-3查询非直属就职记录列表
   */
    BffQueryUndoDirectInductionRecordListRespDto queryUndoDirectInductionRecordList(BffQueryUndoDirectInductionRecordListReqDto reqDto);

    /**
   * B1-3调岗就职记录（管理）
   */
    BffPostTransferInductionRecordRespDto postTransferInductionRecord(BffPostTransferInductionRecordReqDto reqDto);

    /**
   * B1-3补充系统职务（管理）
   */
    BffPerfectSystemPositionRespDto perfectSystemPosition(BffPerfectSystemPositionReqDto reqDto);

    /**
   * B1-3查询就职记录列表（边界）
   */
    BffQueryInductionRecordListBorderRespDto queryInductionRecordListBorder(BffQueryInductionRecordListBorderReqDto reqDto);

    /**
   * B1-3查询非直属就职记录列表（管理）
   */
    BffQueryUndoDirectInductionRecordMgtListRespDto queryUndoDirectInductionRecordMgtList(BffQueryUndoDirectInductionRecordMgtListReqDto reqDto);

    /**
   * B1-3存档就职记录（管理）
   */
    BffToArchiveInductionRecordRespDto toArchiveInductionRecord(BffToArchiveInductionRecordReqDto reqDto);

    /**
   * B1-3查询部门直属就职记录列表
   */
    BffQueryDirectInductionRecordListRespDto queryDirectInductionRecordList(BffQueryDirectInductionRecordListReqDto reqDto);

    /**
   * B1-3查询个人就职记录信息详情
   */
    BffQueryInductionRecordInfoDetailRespDto queryInductionRecordInfoDetail(BffQueryInductionRecordInfoDetailReqDto reqDto);

    /**
   * B1-3查询就职记录详情（管理）
   */
    BffQueryInductionRecordDetailRespDto queryInductionRecordDetail(BffQueryInductionRecordDetailReqDto reqDto);

    /**
   * B1-3删除就职记录(管理)
   */
    BffDeleteInductionRecordRespDto deleteInductionRecord(BffDeleteInductionRecordReqDto reqDto);

    /**
   * B1-3修改就职记录（管理）
   */
    BffUpdateInductionRecordRespDto updateInductionRecord(BffUpdateInductionRecordReqDto reqDto);

    /**
   * B1-3查询管理模式部门直属就职记录列表(管理)
   */
    BffQueryDirectInductionRecordMgtListRespDto queryDirectInductionRecordMgtList(BffQueryDirectInductionRecordMgtListReqDto reqDto);
/**
   * B1-3新增就职记录(管理)
   */
    BffAddInductionRecordRespDto addInductionRecord(BffAddInductionRecordReqDto reqDto);
/**
   * B1-3判断进入就职记录管理模式权限(管理)
   */
    BffJudgeEnterInductionRecordMgtPowerRespDto judgeEnterInductionRecordMgtPower(BffJudgeEnterInductionRecordMgtPowerReqDto reqDto);
/**
   * B1-3查询可分配主管就职记录列表
   */
    BffQueryChargeInductionRecordListRespDto queryChargeInductionRecordList(BffQueryChargeInductionRecordListReqDto reqDto);
/**
   * B1-3批量查询直属就职记录(边界)
   */
    BffBatchQueryDirectInductionRecordBorderRespDto batchQueryDirectInductionRecordBorder(BffBatchQueryDirectInductionRecordBorderReqDto reqDto);
/**
   * B1-3查询可分配参与者就职记录列表
   */
    BffQueryParticipantInductionRecordListRespDto queryParticipantInductionRecordList(BffQueryParticipantInductionRecordListReqDto reqDto);
/**
   * B1-3查询可分配责任人就职记录列表
   */
    BffQueryPrincipalInductionRecordListRespDto queryPrincipalInductionRecordList(BffQueryPrincipalInductionRecordListReqDto reqDto);
/**
   * B1-3批量查询可分配责任人就职记录(边界)
   */
    BffBatchQueryPrincipalInductionRecordBorderRespDto batchQueryPrincipalInductionRecordBorder(BffBatchQueryPrincipalInductionRecordBorderReqDto reqDto);
/**
   * B1-3查询部门下直属就职记录列表(边界)
   */
    BffQueryDeptInductionRecordListBorderRespDto queryDeptInductionRecordListBorder(BffQueryDeptInductionRecordListBorderReqDto reqDto);
/**
   * B1-设置主岗(管理)
   */
    BffImplementSetMajorPositionRespDto implementSetMajorPosition(BffImplementSetMajorPositionReqDto reqDto);
/**
   * B1查询基层向上汇报对象列表
   */
    BffQueryBasicUpReportLeaderListRespDto queryBasicUpReportLeaderList(BffQueryBasicUpReportLeaderListReqDto reqDto);
    //
}
